package com.cyan.note.dto.manager.dashboard;

import lombok.Data;
import java.time.LocalDateTime;

/**
 * 预警提醒DTO
 * 
 * @author ZhangzhenYu
 * @since 2025-01-15
 */
@Data
public class AlertDTO {

    /**
     * 预警ID
     */
    private String alertId;

    /**
     * 预警类型
     */
    private String alertType;

    /**
     * 预警级别
     */
    private String level;

    /**
     * 预警标题
     */
    private String title;

    /**
     * 预警消息
     */
    private String message;

    /**
     * 相关对象ID
     */
    private Long relatedId;

    /**
     * 相关对象类型
     */
    private String relatedType;

    /**
     * 相关对象名称
     */
    private String relatedName;

    /**
     * 预警时间
     */
    private LocalDateTime alertTime;

    /**
     * 是否已处理
     */
    private Boolean isHandled;

    /**
     * 处理时间
     */
    private LocalDateTime handledTime;

    /**
     * 处理人
     */
    private String handledBy;

    /**
     * 紧急程度
     */
    private Integer urgency;

    /**
     * 操作链接
     */
    private String actionUrl;

    /**
     * 预警常量
     */
    public static class AlertType {
        public static final String ORDER_TIMEOUT = "order_timeout";
        public static final String WORKER_OFFLINE = "worker_offline";
        public static final String PAYMENT_OVERDUE = "payment_overdue";
        public static final String CUSTOMER_COMPLAINT = "customer_complaint";
        public static final String SYSTEM_ERROR = "system_error";
        public static final String LOW_BALANCE = "low_balance";
    }

    public static class Level {
        public static final String LOW = "low";
        public static final String MEDIUM = "medium";
        public static final String HIGH = "high";
        public static final String CRITICAL = "critical";
    }
}